﻿using System.Collections.Generic;
using DimOS.Constants;
using DimOS.Internals;
using String = DimOS.Plugs.String;

namespace DimOS.DimFS
{
    public static class Nodes
    {
        public static List<Node> List = new List<Node>
        {
            new Node("#", null, Permissions.Default(Account.Root),
                new Attributes(true, false, false, false, false, false, false),
                new Content(new List<Node>(), null)),

            new Node("data", null, Permissions.Default(Account.Root),
                new Attributes(true, false, false, false, false, false, false),
                new Content(new List<Node>(), null)),

            new Node("temp", null, new Permissions(Account.Root, true, true, false, false),
                new Attributes(true, true, false, false, false, false, false),
                new Content(new List<Node>(), null)),

            new Node("user", null, new Permissions(Account.Root, true, true, false, false),
                new Attributes(true, false, true, false, false, false, false),
                new Content(new List<Node>(), null)),

            new Node("conf", null, Permissions.Default(Account.Root),
                new Attributes(true, false, false, false, false, false, false),
                new Content(new List<Node>(), null)),

            new Node("home", null, Permissions.Default(Account.User), Attributes.Default(),
                new Content(new List<Node>(), null)),

            new Node("history.txt", null, Permissions.Default(Account.Root),
                new Attributes(true, false, false, false, true, false, false),
                new Content(null, null)),

            new Node("system.info", null, Permissions.Default(Account.Root), Attributes.Default(),
                new Content(null, String.Encode(Contents.SystemInfo))),

            new Node("guide.txt", null, Permissions.Default(Account.User), Attributes.Default(),
                new Content(null, String.Encode(Contents.UserGuide))),

            new Node("script.model", null, Permissions.Default(Account.User), Attributes.Default(),
                new Content(null, String.Encode(Contents.ScriptTemplate))),

            new Node("shell.conf", null, Permissions.Default(Account.Root),
                new Attributes(true, false, false, true, false, false, false),
                new Content(null, String.Encode(Contents.ShellSettings)))
        };
    }

}
